package map;

import java.util.*;

/*
* Map的遍历
* Map提供三种遍历方式
* 1.遍历所有的key
* 2.遍历每一组键值对
* 3.遍历所有的value(相对不常用)
* */
public class MapDemo2 {
    public static void main(String[] args) {
        Map<String,Integer> map = new HashMap<>();
        map.put("语文",99);
        map.put("数学",86);
        map.put("英语",90);
        map.put("物理",98);
        map.put("化学",93);
        map.put("生物",95);
        System.out.println(map);
        /*
        * 遍历所有的key
        * Set<K> keySet()
        * 将当前Map中所有的key以一个Set集合形式返回。*/
        Set<String> keySet = map.keySet();
        for (String key : keySet){
            System.out.println("key:"+key);
        }
        /*
        * Map.Entry它的每一个实例用于表示Map中的一组键值对
        * Entry上有两个常用方法：
        * K getKey()
        * V getValue()
        * */
        Set<Map.Entry<String,Integer>> entrySet = map.entrySet();
        for (Map.Entry<String,Integer> entry : entrySet){
            String key = entry.getKey();
            Integer value = entry.getValue();
            System.out.println(key+":"+value);
        }
        /*
        * 遍历所有的value
        * Collection values()
        * 将当前Map中所有的value以一个集合形式返回*/
        Collection<Integer> collection = map.values();
        for (Integer value : collection){
            System.out.println("value:"+value);
        }
        /*Map也支持forEach方法*/
        map.forEach((k,v)-> System.out.println(k+":"+v));
    }
}
